#pragma once

#include <unistd.h>
#include <sys/syscall.h> 


namespace CurrentThread
{
    extern __thread int t_cachedTid;

    void cachedTid();

    inline int tid() // 如果在头文件中定义内联函数，且没有显式声明为 extern，则该函数具有内部链接（只在当前编译单元可见）
    {
        // 这是一种优化
        if(__builtin_expect(t_cachedTid == 0,0))// 如果t_cachedTid==0，就说明t_cachedTid还没被获取过
        {
            cachedTid();
        }
        return t_cachedTid;
    }
}